package com.xbongbong.sso.help;

import com.alibaba.fastjson.JSONObject;
import com.xbongbong.paas.enums.EnableEnum;
import com.xbongbong.sso.domain.entity.OauthStepEntity;
import com.xbongbong.sso.enums.ContentTypeEnum;
import com.xbongbong.sso.enums.MethodEnum;
import com.xbongbong.sso.enums.StepTypeEnum;
import com.xbongbong.sso.pojo.OauthStepPojo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

import java.util.Objects;

/**
 * 授权步骤帮助类
 */
@Component
public class OauthStepHelp {

    private static final Logger LOG = LoggerFactory.getLogger(OauthStepHelp.class);

    public OauthStepPojo oauthStepPojoFormat(OauthStepEntity oauthStep) {
        if (Objects.isNull(oauthStep)) {
            return new OauthStepPojo();
        }
        OauthStepPojo oauthStepPojo = new OauthStepPojo();
        oauthStepPojo.setId(oauthStep.getId());
        oauthStepPojo.setCorpid(oauthStep.getCorpid());
        oauthStepPojo.setConnectorId(oauthStep.getConnectorId());
        JSONObject enableJson = new JSONObject();
        enableJson.put("value", oauthStep.getEnable());
        enableJson.put("text", EnableEnum.getByCode(oauthStep.getEnable()).getCode());
        oauthStepPojo.setEnable(enableJson);
        JSONObject stepTypeJson = new JSONObject();
        stepTypeJson.put("value", oauthStep.getStepType());
        stepTypeJson.put("text", StepTypeEnum.getByCode(oauthStep.getStepType()).getName());
        oauthStepPojo.setStepType(stepTypeJson);
        oauthStepPojo.setUrl(oauthStep.getUrl());
        JSONObject methodJson = new JSONObject();
        methodJson.put("value", oauthStep.getMethod());
        methodJson.put("text", MethodEnum.getByCode(oauthStep.getMethod()).getName());
        oauthStepPojo.setMethod(methodJson);
        JSONObject contentTypeJson = new JSONObject();
        contentTypeJson.put("value", oauthStep.getContentType());
        contentTypeJson.put("text", ContentTypeEnum.getByCode(oauthStep.getContentType()).getName());
        oauthStepPojo.setContentType(contentTypeJson);
        oauthStepPojo.setUpdateTime(oauthStep.getUpdateTime());
        oauthStepPojo.setAddTime(oauthStep.getAddTime());
        oauthStepPojo.setDel(oauthStep.getDel());
        return oauthStepPojo;
    }
}
